package com.ruoyi.orderEat.mapper;

import java.util.List;
import com.ruoyi.orderEat.domain.OrderInfo;
import com.ruoyi.orderEat.domain.OrderInfoVO;
import com.ruoyi.orderEat.domain.OrderListVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 订单信息Mapper接口
 * 
 * @author dinghao
 * @date 2023-12-06
 */

@Repository
public interface OrderInfoMapper 
{
    /**
     * 查询订单信息
     * 
     * @param orderId 订单信息主键
     * @return 订单信息
     */
    public OrderInfo selectOrderInfoByOrderId(Long orderId);

    /**
     * 查询订单信息列表
     * 
     * @param orderInfo 订单信息
     * @return 订单信息集合
     */
    public List<OrderInfo> selectOrderInfoList(OrderInfo orderInfo);

    /**
     * 查询订单主子表
     *
     * @param orderInfo 订单信息
     * @return 订单信息集合
     */
    public List<OrderListVO> selectOrderList(OrderInfo orderInfo);

    /**
     * 查询订单信息列表
     *
     * @param orderInfo @return 订单信息集合
     * @param offset
     * @param pageSize
     */
    public List<OrderInfoVO> selectOrderInfoVOList(@Param("ceshiName")OrderInfo orderInfo, @Param("offset")int offset ,@Param("pageSize")Integer pageSize );

    /**
     * 查询指定订单ID相关的子订单
     *
     * @param orderId 订单信息
     * @return 订单信息集合
     */
    List<OrderInfo> selectByParentId(Long orderId);





    /**
     * 查询追加订单个数
     *
     * @param orderStatus 订单信息
     * @return 订单信息集合
     */

    Integer countByOrderStatus(@Param("orderStatus")Integer orderStatus,@Param("tableId")Long tableId);

    /**
     * 新增订单信息
     * 
     * @param orderInfo 订单信息
     * @return 结果
     */
    public int insertOrderInfo(OrderInfo orderInfo);

    /**
     * 修改订单信息
     * 
     * @param orderInfo 订单信息
     * @return 结果
     */
    public int updateOrderInfo(OrderInfo orderInfo);

    /**
     * 删除订单信息
     * 
     * @param orderId 订单信息主键
     * @return 结果
     */
    public int deleteOrderInfoByOrderId(Long orderId);

    /**
     * 批量删除订单信息
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrderInfoByOrderIds(Long[] orderIds);
}
